iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
SideProject30

HOW TO GO系列 第 2

02. 程式結構

  • 分享至 

  • xImage
  •  

前言

Go 語言本身就提供非常豐富的基礎套件,如上一篇所使用到的 fmt.Println() 就是官方所提供的,基本上不依賴任何的外部套件,僅僅使用語言本身所提供的功能,就可以實現大部分的功能

如果還沒安裝環境的,介紹一個官方提供的線上編譯網站 Go Playground,感受一下 Go 所帶來魅力吧

關鍵字 Keywords

Go 的關鍵字僅僅也才 25 個,相比於其他語言簡潔許多

break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var

變數

宣告變數的方式,主要分成兩種

// 方式1. 
var n1 int // 自動賦予預設初始值
var n2 int = 2
var n3, n4 int // 多變數宣告

// 方式2. 短變數宣告
n5 := 0 // 自動推斷型別
n4, n5 := 1, 2 // 多變數宣告

// 2d := "2D" // 變數名稱不能以數字開頭 

指標 pointer(有學過C語言的應該會非常熟悉

x := 1
p := &x // 指向 x 所在位址

fmt.Println(*p) // 取得位址的值

p := new(int) // 建立 int 的指標

指派 assign


name := "amy"
n1, n2 := 1, 2

name = "bob" // 單變數指派
n1, n2 = 3, 4 // 多變數指派

n1, n2 = n2, n1 // 可以直接交換,不需額外暫存變數作交換

流程

for 迴圈

for i := 0; i < 5; i++ {
	fmt.Println(".~~~.")
}

等同於 while 迴圈

i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

無窮迴圈

for {
    fmt.Println(1)
}

if

if i > 10 {
    fmt.Println("if")
else if i > 5 {
    fmt.Println("else if")
} else {
    fmt.Println("else")
}

switch

i := 3
    switch i {
    case 1:
        fmt.Println("1")
    case 2:
        fmt.Println("2")
    case 3:
        fmt.Println("3")
    default:
        fmt.Println("default")
    }

範圍 Scope,由內層尋找至外層

package main

import "fmt"

var g = "g"
var g2 = "g2"

func main() {
	g := "gg"
	fmt.Println(g) // "gg"
	
	fmt.Println(g2) // "g2"
}

套件

匯入 import

import "fmt" // 引入套件

// 引入多組套件
import (
    "fmt"
    "os"
)

套件初始化,只會執行一次

func init() {
    // init
}

上一篇
01. 基本入門&開發工具
下一篇
03. 基本資料型別
系列文
HOW TO GO30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言